package pro2
import scala.collection.mutable.ArrayBuffer
import Array._
import java.util.Arrays
object testArray {
  def main(args: Array[String]): Unit = {

    /**一、不可变数组
     * 不可变数组一旦初始化，数组的长度就是不可变的，不能往数组中添加任何元素
     */
    val arr = Array[Int](1, 2, 3, 4,5 )//定义数组
    arr.take(2).foreach(println)
//    val arr0 = Array[Int](4, 5, 6, 7, 8)
//    for(x<-arr){
//      println(x)
//    }
//    arr.foreach(print)
//    println(Arrays.toString(arr))
//    println(arr)
//    println(arr0)

//// 1. 创建二维数组
//    val array: Array[Array[Int]] = Array.ofDim[Int](3, 4) //三个一维数组，每个数组4个元素
//
//    // 2. 访问元素
//    array(0)(3) = 19
//    array(1)(0) = 25
//
//    for (i <- array.indices; j <- array(i).indices) {   // 取第n个数组，遍历第n个数组
//      print(array(i)(j) + "\t")
//      if (j == array(i).length - 1)println()
//    }
//
//
////    array.foreach(line => line.foreach(elem => print(elem + "\t")))



//    val arr1: Array[Any] = Array(1, 2, "leo")// 如果数组中,有不同类型的元素,那么这个数组的类型就是这些元素的公共父类型 Any
//    val arr2 = new Array[Int](5)// 创建了一个数组,给数组的初始化长度为5,每个角标的初始长度和泛型的初始值一致，也就是 0
//    val arr3 = Array(5)// 创建一个数组,数组的长度是 1 ,数组的元素是 5
//
//    /**二、可变长数组
//     * 需要导入包import scala.collection.mutable.ArrayBuffer
//     */
//    val buffer1 = ArrayBuffer[Int]()
//    buffer1 += 1
//    buffer1 ++= arr
//    buffer1 ++= ArrayBuffer(6, 7, 8) // 添加数组
//    buffer1(1) = 11//更改指定角标的值
//    buffer1.append(12, 13, 14)//append方式添加
//    buffer1 -= 12
//    println(buffer1)
//
//
//
//
//    println(buffer1.length)
//    println(buffer1.isEmpty)
//    println(buffer1.contains(1))
//
//
//
//
//
//
//
//
//
    //三、数组常用方法
//    println(arr.length)// 返回数组长度
//    println(arr.contains(2))//判断数组是否包含元素2
//    val a=range(1,10,2)//利用range方法在区间[1,10)上创建为2的数组
//    val arr4 =concat(arr,arr0)//合并数组
//    val arr5 = arr ++ arr2// ++ 运算符合并两个数组,原来的数组并没有改变,只是生成了个新的数组。
//    println(buffer1+=6)//可变数组在尾端添加元素
//    buffer1.remove(5)//移除指定下表对应的元素
//    buffer1.remove(3, 2)//从指定角标开始移除指定个元素
//    buffer1 --= Array(1, 2, 15)//移除数组  如果要移除的元素不存在,不会报错
//    println(buffer1)
//    println(arr4)
//    println(arr5)
//
//
    //四、遍历数组
    //计算12+20+31+4+55的值
//    val a = Array(12, 20, 31, 4, 55)
//    var sum1, sum2, sum3 = 0
//    for (i <- a)
//      (sum1 += i)
//    for (i <- 0 until a.length)
//      sum2 += a(i)
//    for (i <- 0 to a.length - 1)
//      sum3 += a(i)
//    println("sum1=" + sum1)
//    println("sum2=" + sum2)
//    println("sum3=" + sum3)
  }
}
